﻿//该文件用于创建Vuex中最为核心的store

import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'

//应用Vuex插件
Vue.use(Vuex)

//准备actions:用于响应组件中的动作
const actions = {
    jia(context,value){
        //console.log('actions中的jia被调用了',context,value)
        context.commit('JIA',value)
    },
    jian(context,value){
        context.commit('JIAN',value)
    },
    jadd(context,value){
        // console.log(context)
        if(context.state.sum % 2 !== 0){
            context.commit('JIA',value)
        }
    },
    delayAdd(context,value){
        setTimeout(()=>{
            context.commit('JIA',value)
        },1000)
    }
}

//准备getters:用于将state中的数据进行加工
const getters = {
    //给你要实现运算的值取一个名字
    bigSum(state){ //能接收到state的值
        return state.sum*10//跟计算属性类似:靠返回值来决定自己的值
    }
}
//准备mutations:用于操作数据(state)
const mutations = {
    JIA(state,value){
        //console.log('actions中的JIA被调用了',state,value)
        state.sum += value
    },
    JIAN(state,value){
        state.sum -= value
    },
}
//准备state:用于存储数据
const state = {
    sum:0,
    school:'bilibili',
    subject: 'Vue'
}


//创建并暴露store
export default new Vuex.Store({
    actions,mutations,state,getters
})

//创建store
/* const store = new Vuex.Store({
    // actions:actions,
    // mutations:mutations,
    // state:state,
    //重名可以触发对象的简写形式:
    actions,
    mutations,
    state,
})

//暴露store(暴露一个就用默认暴露)
export default store */
